package leetcode21_30;

import outoforder.leetcode.ListNode;

/**
 * @author shhjiang_001
 * @create 2020-06-13 23:24
 */

/*
给定一个链表，两两交换其中相邻的节点，并返回交换后的链表。
你不能只是单纯的改变节点内部的值，而是需要实际的进行节点交换。
        示例:
        给定 1->2->3->4, 你应该返回 2->1->4->3.*/


public class Solution24 {
    public ListNode swapPairs(ListNode head) {
        ListNode res = new ListNode();
        ListNode emp = res;
        while(head != null){
            emp.next = new ListNode();
            emp = emp.next;
            if(head.next != null){
                emp.next = new ListNode();
                emp.val = head.next.val;
                emp.next.val = head.val;
                emp = emp.next;
            }else{
                emp.val = head.val;
                break;
            }
            head = head.next.next;
        }
        return res.next;
    }
}
